﻿#ifndef HANDMEASUREFUNCTION_H
#define HANDMEASUREFUNCTION_H

#include "Renderer.h"
#include "OpenCLManager.h"
#include "OpenCLGL_Util.h"

class CostFunction
{
	public:

		GLRenderer* renderer;
		OpenCLManager * oclManager;
		std::vector<Hypothesis> hypoArrays;

		CostFunction(void);
		~CostFunction(void);

		void initialize(GLRenderer* renderer,OpenCLManager* ocl);

		void simulatingObserve(Hypothesis hypo);
		void psoFunction(std::vector<double> &measureResult);
		double getE_Vector(double D_Results, float * hypos);
		double getResultAt(int index);
};

#endif